/*     */ package com.newcrm.webapi.sub;
/*     */ 
/*     */ import com.newcrm.bean.CompanyInfo;
/*     */ import com.newcrm.bean.Group;
/*     */ import com.newcrm.bean.User;
/*     */ import com.newcrm.db.CustomerManager;
/*     */ import com.newcrm.exception.NotFoundException;
/*     */ import com.newcrm.util.Util;
/*     */ import com.newcrm.webapi.AbstractAction;
/*     */ import com.newcrm.webapi.AbstractHttpServlet;
/*     */ import java.io.IOException;
/*     */ import java.io.PrintWriter;
/*     */ import java.util.ArrayList;
/*     */ import java.util.HashMap;
/*     */ import java.util.List;
/*     */ import java.util.Map;
/*     */ import javax.servlet.ServletException;
/*     */ import javax.servlet.http.HttpServletRequest;
/*     */ import javax.servlet.http.HttpServletResponse;
/*     */ import net.sf.json.JSONObject;
/*     */ 
/*     */ public class ShowCustomerTypeChartData extends AbstractAction
/*     */ {
/*     */   public ShowCustomerTypeChartData(AbstractHttpServlet servlet)
/*     */   {
/*  37 */     super(servlet);
/*     */   }
/*     */ 
/*     */   public void parse(HttpServletRequest request, HttpServletResponse response)
/*     */     throws IOException, ServletException, NotFoundException
/*     */   {
/*  43 */     User user = super.getLoginUser(request);
/*     */ 
/*  45 */     String userId = Util.getURLParameter(request.getParameter("userId"));
/*     */ 
/*  47 */     if ("1".equals(request.getParameter("type")))
/*     */     {
/*  49 */       if ((userId != null) && (userId.trim().length() > 0))
/*     */       {
/*  51 */         userId = "u_" + userId;
/*     */       }
/*     */       else {
/*  54 */         String groupId = Util.getURLParameter(request
/*  55 */           .getParameter("groupId"));
/*     */ 
/*  57 */         if ((groupId != null) && (groupId.trim().length() > 0)) {
/*  58 */           userId = "g_" + groupId;
/*     */         }
/*     */ 
/*     */       }
/*     */ 
/*  63 */       if ((userId == null) || (userId.trim().length() == 0)) {
/*  64 */         userId = "u_*";
/*     */       }
/*     */ 
/*     */     }
/*  69 */     else if ((!user.isAdmin) && (!user.isGroupAdmin)) {
/*  70 */       super.showErrorMessage(response, "只有管理员或者部门经理才有查看的权限");
/*  71 */       return;
/*     */     }
/*     */ 
/*  81 */     if (!user.isAdmin)
/*     */     {
/*  83 */       if ((userId == null) || (userId.trim().length() == 0) || 
/*  84 */         (userId.contains("*"))) {
/*  85 */         userId = "g_" + user.groupId;
/*     */       }
/*     */     }
/*     */ 
/*  89 */     CompanyInfo company = super.getCompany(request);
/*  90 */     List result = new ArrayList();
/*  91 */     CustomerManager manager = new CustomerManager();
/*     */ 
/*  93 */     if ((userId == null) || (userId.trim().length() == 0))
/*     */     {
/*  95 */       result = manager.getAllCustomerCategoryNum(user.companyId);
/*  96 */     } else if (userId.contains("u_")) {
/*  97 */       if (userId.indexOf("*") > 0) {
/*  98 */         userId = "";
/*     */       }
/*     */       else {
/* 101 */         userId = userId.substring(2);
/*     */ 
/* 103 */         if ((!user.isAdmin) && (!userId.equals(user.userId)))
/*     */         {
/* 105 */           User viewUser = company.getUser(userId);
/* 106 */           if (viewUser == null) {
/* 107 */             super.showErrorMessage(response, "您查看的员工不存在");
/* 108 */             return;
/*     */           }
/*     */ 
/* 111 */           if (!company.isGroupAdmin(user, viewUser.groupId)) {
/* 112 */             super.showErrorMessage(response, "您没有权限查看该员工的统计信息");
/* 113 */             return;
/*     */           }
/*     */         }
/*     */       }
/* 117 */       result = manager.getCustomerCategoryNumByUserId(user.companyId, 
/* 118 */         userId);
/* 119 */     } else if (userId.contains("g_"))
/*     */     {
/* 121 */       int groupId = Util.str2Int(userId.substring(2));
/* 122 */       if (groupId <= 0) {
/* 123 */         super.showErrorMessage(response, "您查看的部门信息不存在");
/* 124 */         return;
/*     */       }
/*     */ 
/* 127 */       if ((!user.isAdmin) && 
/* 128 */         (!company.isGroupAdmin(user, groupId))) {
/* 129 */         super.showErrorMessage(response, "您没有权限查看该员工的统计信息");
/* 130 */         return;
/*     */       }
/*     */ 
/* 135 */       String groupIds = "0";
/* 136 */       Group group = company.getGroupById(groupId);
/* 137 */       if (group == null) {
/* 138 */         super.showErrorMessage(response, "您查看的部门信息不存在");
/* 139 */         return;
/*     */       }
/*     */ 
/* 142 */       groupIds = group.getAllIds();
/*     */ 
/* 144 */       result = manager.getCustomerCategoryNumByGroupIds(user.companyId, 
/* 145 */         groupIds);
/*     */     }
/*     */ 
/* 148 */     response.setContentType("text/html;charset=utf-8");
/* 149 */     PrintWriter out = response.getWriter();
/* 150 */     JSONObject jsonObject = new JSONObject();
/*     */ 
/* 152 */     List chars = new ArrayList();
/* 153 */     List colors = new ArrayList();
/* 154 */     int noneCategoryNum = 0;
/* 155 */      for (Object itemO : result) {
        Map item = (Map)itemO;
/* 156 */       int num = Util.str2Int(item.get("totalNum"));
/* 157 */       int categoryId = Util.str2Int(item.get("CategoryId"));
/* 158 */       String categoryName = company.getCustomerCategoryName(categoryId);
/* 159 */       if (categoryName != null) {
/* 160 */         Map map = new HashMap();
/* 161 */         map.put("label", categoryName);
/* 162 */         map.put("value", Integer.valueOf(num));
/* 163 */         map.put("id", Integer.valueOf(categoryId));
/* 164 */         chars.add(map);
/*     */ 
/* 166 */         String color = company.getCustomerCategoryColor(categoryId);
/* 167 */         if ((color == null) || (color.trim().length() == 0)) {
/* 168 */           color = "000000";
/*     */         }
/* 170 */         colors.add("#" + color);
/*     */       }
/*     */       else {
/* 173 */         noneCategoryNum += num;
/*     */       }
/*     */ 
/*     */     }
/*     */ 
/* 178 */     if (noneCategoryNum > 0) {
/* 179 */       Map map = new HashMap();
/* 180 */       map.put("label", "无分类");
/* 181 */       map.put("value", Integer.valueOf(noneCategoryNum));
/* 182 */       map.put("id", Integer.valueOf(0));
/* 183 */       chars.add(map);
/*     */ 
/* 185 */       colors.add("#000000");
/*     */     }
/*     */ 
/* 188 */     jsonObject.put("error", "0");
/* 189 */     jsonObject.put("chars", chars);
/* 190 */     jsonObject.put("colors", colors);
/* 191 */     out.println(jsonObject);
/* 192 */     out.flush();
/* 193 */     out.close();
/*     */   }
/*     */ }

/* Location:           C:\E\referenceProject\CRM参考\qikebao\WEB-INF\lib\qikebao.jar
 * Qualified Name:     com.newcrm.webapi.sub.ShowCustomerTypeChartData
 * JD-Core Version:    0.6.1
 */